/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ManagedBeans;

import Entidades.Pedido;
import SessionBeans.PedidosDAO;
import Utilidades.Utilidades;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.model.SelectItem;

/**
 *
 * @author javi
 */
@ManagedBean
@SessionScoped
public class mbListPedido {

    @EJB
    private PedidosDAO pedidosDAO;
    public String warning = "";
    private Pedido selected;

    public mbListPedido() {
    }

    public PedidosDAO getPedidosDAO() {
        return pedidosDAO;
    }

    public List<Pedido> mostrarPedidos() {
        return pedidosDAO.getPedidos();
    }

    public Pedido getSelected() {
        return selected;
    }

    public String editar(int id) {
        this.selected = pedidosDAO.getPedido(id);
        return "/admin/pedidos/editar";
    }

    public String ver(int id) {
        this.selected = pedidosDAO.getPedido(id);
        return "/admin/pedidos/ver";
    }

    public String verPedUsu(int id) {
        this.selected = pedidosDAO.getPedido(id);
        return "/front/pedidos/ver";
    }

    public String update() {
        pedidosDAO.actualizar(selected);
        return "/admin/pedidos/lista";
    }

    public List<SelectItem> todosItems() {
        ArrayList<SelectItem> lista = new ArrayList<SelectItem>();
        //lista.add(new SelectItem(0, Utilidades.estadoToString(0)));
        lista.add(new SelectItem(1, Utilidades.estadoToString(1)));
        lista.add(new SelectItem(2, Utilidades.estadoToString(2)));
        lista.add(new SelectItem(3, Utilidades.estadoToString(3)));
        lista.add(new SelectItem(4, Utilidades.estadoToString(4)));

        return lista;
    }

    public String estadoToString(int id) {
        return Utilidades.estadoToString(id);
    }

    public String formaPToString(int id) {
        return Utilidades.formapToString(id);
    }

    public String borrar(int id) {
        this.selected = pedidosDAO.getPedido(id);
        pedidosDAO.borrar(this.selected);
        return "/admin/pedidos/lista";
    }

    public List<Pedido> mostrarPedidosUsuario() {
        List<Pedido> pedido = new ArrayList<Pedido>();

        int userid = Utilidades.getCarritoDAO().getIdLog();
        if (userid > 0) {
            warning = "";
            String where = " p.cliente.id=(SELECT c.id FROM Cliente c WHERE c.id =" + userid + ")";
            pedido = pedidosDAO.getPedidos(where, null);
        } else {
            warning = "No se encuentra loggeado en el sistema.";
        }
        return pedido;
    }

    public String getWarning() {
        return warning;
    }

    public void setWarning(String warning) {
        this.warning = warning;
    }

    public String estadoTexto(int idEstado) {
        return Utilidades.estadoToString(idEstado);
    }
    
    public void cambiarPedido(int id){
        this.selected = pedidosDAO.getPedido(id);
        int i = selected.getEstado();
        if(i==0){
            selected.setEstado(1);
            pedidosDAO.actualizar(selected);
        }
        
        
    }
     
    public List<Pedido> mostrarPedidosAdmin(){
        return (pedidosDAO.getPedidosAdmin(null,null));
    }
    
    public void cambiarPedidoEliminar(int id) {
        this.selected = pedidosDAO.getPedido(id);
        if(selected.getEstado()==0){
            pedidosDAO.borrar(this.selected);
        }

    }
}
